<?php


namespace App\Messages;

use Overtrue\EasySms\Message;
use Overtrue\EasySms\Contracts\GatewayInterface;
use Overtrue\EasySms\Strategies\OrderStrategy;

class AuditMessage extends Message
{
    protected $strategy = OrderStrategy::class; // 本短信的网关使用策略(顺序发送)，覆盖全局配置中的 `default.strategy`
    protected $message;

    /**
     * 本短信的适用平台，覆盖全局配置中的 `default.gateways`
     * aliyun：短信内容使用 template + data
     * yunpian：短信内容使用 content
     * qcloud：短信内容使用 content
     * @var array
     */
    protected $gateways = ['aliyun', 'yunpian'];

//    public function __construct($code)
//    {
//        $this->code = $code;
//    }

    /**
     * 定义直接使用内容发送平台的内容
     * @param GatewayInterface|null $gateway
     * @return string
     */
    public function getContent(GatewayInterface $gateway = null)
    {
        return $this->message;
    }

    /**
     * 定义使用模板发送方式平台所需要的模板 ID
     * @param GatewayInterface|null $gateway
     * @return string
     */
    public function getTemplate(GatewayInterface $gateway = null)
    {
        if ($gateway->getName() == 'aliyun') {
            return 'SMS_160856365'; // @todo
        }

        return;
    }

    /**
     * 模板参数
     * @param GatewayInterface|null $gateway
     * @return array
     */
    public function getData(GatewayInterface $gateway = null)
    {
        if ($gateway->getName() == 'aliyun') {
            return [
                'message' => $this->message
            ];
        }

        return [];
    }
}